/**
 * Класс таблицы списка.
 * @lends phonebook.view.SidebarView
 */
phonebook.view.SidebarView = Base.extend({
	
    controller : null,		// объект управления процессами Приложения   
	
    /**
     * Конструктор класса
     * @author Konstantin Chumachenko
     * 
     * @augments Base
     * @class Класс панели списка пользователей.
     * 
     * <p><b>Пример:</b></p>
     * <pre class="code">
     * var SidebarView = new phonebook.view.SidebarView(controller);
     * </pre>
     * 
     * @constructs
     * @param {Controller} controller Контроллер приложения.
     */
    constructor : function(controller) {	
        console.log("-- SidebarView: Конструктор.");
        this.controller = controller;
        this.domElement = $(SIDEBAR_HOLDER);
        this.render(this.domElement);
    },
	
    /**
     * Возвращает DOM-элемент этой панели 
     * @function
     * @public 
     * @memberOf phonebook.view.SidebarView#
     */
    getDomElement : function() {
        return this.domElement;
    },
	
    /**
     * Выполняется отрисовка панели.
     * @private 
     * @function
     * @param (elementDOM) renderTo Элемент DOM, внутри которого будет создан контейнер.
     * @return none
     */
    render : function(renderTo) {
        console.log("-- SidebarView: render!.");
        var me = this;
        var realData = null;
        $.ajax({
            type: 'POST',
            url: 'index?ajax=getUnitList',
            async: false,
            success: function(data,  textStatus,  jqXHR){     
                var com =  jQuery.parseJSON(data);                
                realData = com["unitList"];
            }
        });
        var length = realData.length,
        unit = null,
        renderDiv = null,
        content = null;
        
        for (var i = 0; i < length; i++) {
            unit = realData[i];
            content = unit["content"];
            renderDiv = "unit"+i;
            $(SIDEBAR_HOLDER).append("<h3>"+unit["name"]+"</h3><div id='"+renderDiv+"'></div>");
            for (var j = 0; j< content.length; j++){
                new widget.ActiveLink({
                    text : content[j],
                    renderTo: '#'+renderDiv,
                    listeners : {
                        click : function(lnk, elementDom){
                            me.controller.doFilter(lnk.text);
                        }
                    }
                });
            }
        }
       
        $(SIDEBAR_HOLDER).accordion({
            heightStyle: "content",
            collapsible: true           
        });
    }
	
});